/*
编程实现长度为【16】【16】整型二维数组并输入或指定所有位置的元素值，分别实现二维数组中所有行和所有列中所有位置的元素值，
分别实现二维数组中所有行和所有列中所有元素的累加和并打印，再分别实现二维数组左上角到右下角和右上角和左下角的累加并打印
* */
import java.util.Scanner;
public class print2D {
    public static void main(String[] args) {
//        1. 声明需要用到的变量
        String[][] array2d = new String[16][16];
        int total = 0;
        int[] row = new int[16];
        int[] column = new int[16];
        int sum_left_right = 0;
        int sum_right_left = 0;

//        2. 提示用户输入并指定所有位置的元素值
        for (int i = 0; i < 16; i++){
            System.out.println("请输入您要在第"+ (i+1) +"行指定的16个元素(用空格符号隔开)");
            Scanner sc = new Scanner(System.in);
            String elements = sc.nextLine();
            String[] element_list = elements.split(" ");
            array2d[i] = element_list;

        }
//        3.分别计算累加值
        for (int j = 0; j < array2d.length; j++) {
            for(int n = 0; n < 16; n++) {
                int ele = Integer.parseInt(array2d[j][n]);
//                计算所有元素累加值
                total += ele;
//                计算行的累加值
                row[j] += ele;
//                计算列的累加值
                column[n] += ele;
//                计算左上角到右下角的累加
                if (j == n){
                    sum_left_right += ele;
                }
//                计算右上角和左下角的累加
                if (j + n == 15){
                    sum_right_left += ele;
                }

            }
        }
        for (int j = 0; j < 16; j++){
        System.out.println("第"+(j+1)+"行的累加值为"+row[j]);
        System.out.println("第"+(j+1)+"列的累加值为"+column[j]);}
        System.out.println("左上角到右下角的累加"+ sum_left_right);
        System.out.println("右上角和左下角的累加"+ sum_right_left);
        System.out.println("所有元素的累加"+ total);

    }
}
